<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>call 学习</title>
</head>
<body>
    <h2>Function.prototype.call(thisArg, arg1, arg2, ...)</h2>
    <div>
        函数实例的call方法，可以指定该函数内部this的指向（即函数执行时所在的作用域），然后在所指定的作用域中，调用该函数。并且会立即执行该函数。
    </div>
    <h3>参数</h3>

    <h4>thisArg</h4>
    <p>
    在fun函数运行时指定的this值。需要注意的是，指定的this值并不一定是该函数执行时真正的this值，如果这个函数处于非严格模式下，则指定为null和undefined的this值会自动指向全局对象(浏览器中就是window对象)，同时值为原始值(数字，字符串，布尔值)的this会指向该原始值的自动包装对象。
    </p>
    <h4>arg1, arg2, ...</h4>
    <p>指定的参数列表。</p>

<script>
    var keith={
        aa: 123
    };

    var aa = 456;

    function a() {
        console.log(this.aa);
    }

    a(); //456
    a.call(); //456
    a.call(null); //456
    a.call(undefined); //456
    a.call(this); //456
    a.call(keith); //123

</script>
</body>
</html>